/*
 * Copyright (C) 2016 yixun All Rights Reserved.
 * 
 * ProjectService.java
 */
package com.emm.yixun.basic.service;

import java.math.BigDecimal;
import java.util.List;

import com.emm.yixun.common.model.PmoSaleData;
import com.emm.yixun.common.model.Project;
import com.emm.yixun.common.model.ProjectList;
import com.emm.yixun.common.model.dto.PmoSaleDataDto;
import com.emm.yixun.common.model.dto.ProjectDto;
import com.emm.yixun.common.model.dto.ProjectListDto;
import com.emm.yixun.common.model.pmo.PmoReceivedDataDto;
import com.emm.yixun.common.model.pmo.PmoSignedDataDto;
import com.emm.yixun.common.page.Page;

/**
 * [文件名称]<br>
 * ProjectService.java<br>
 * <br>
 * [文件描述]<br>
 * 房产项目 service interface<br>
 * <br>
 * [修改记录]<br>
 * 2016-05-11 11:27:19 创建 陶俊代码生成器<br>
 * 
 * @author 陶俊代码生成器
 * @version 1.00
 */
public interface ProjectService {
	/**
	 * @param entity
	 *            搜索条件
	 * @param begin
	 *            分页开始行数[不包含]
	 * @param end
	 *            分页结束行数[包含]
	 * @return 分页记录
	 */
	public Page<Project> getPageModel(ProjectDto entity, int begin, int end);

	/**
	 * 查询列表
	 * 
	 * @param entity
	 *            搜索条件
	 * @return 分页记录
	 */
	public List<Project> selectListByDto(ProjectDto entity);

	/**
	 * 查询单个
	 * 
	 * @param entity
	 *            搜索条件
	 * @return 分页记录
	 */
	public Project selectByDto(ProjectDto entity);

	/**
	 * @param entity
	 *            根据主键搜索
	 * @return 一行记录
	 */
	public Project selectById(Long id);

	/**
	 * @param entity
	 *            新增记录的详细信息
	 * @return 新增行数
	 */
	public ProjectDto create(ProjectDto entity);

	/**
	 * @param entity
	 *            更新记录的详细信息
	 * @return 更新行数
	 */
	public int update(ProjectDto entity);

	/**
	 * @param entity
	 *            待删除的记录信息
	 * @return 删除行数
	 */
	public int destroy(ProjectDto entity);

	/**
	 * @param entity
	 *            新增或更新
	 * @return 新增行数
	 */
	public int saveOrUpdate(ProjectDto entity);

	public Page<ProjectList> getProjectListPage(ProjectListDto entity, int begin, int end);
	
	
	/**
	 * 查询PMO业态数据
	 */
	public PmoSaleData queryPmoSaleData(PmoSaleDataDto pmoSaleDataDto);
	
	public PmoSaleData queryPmoArae(PmoSaleDataDto pmoSaleDataDto);
	

	/**
     * 查询列表
     * 
     * @param entity
     *            搜索条件
     * @return 分页记录
     */
    public List<Project> getQuestionnaireProject(ProjectDto entity);

	/**
	 * PMO签约记录业态统计
	 * @param pmoSaleDataDto
	 * @return
	 */
	List<PmoSignedDataDto> queryPmoSignedData(PmoSaleDataDto pmoSaleDataDto);
	/**
	 * PMO收款记录业态统计
	 * @param pmoSaleDataDto
	 * @return
	 */
	List<PmoReceivedDataDto> queryPmoReceivedData(PmoSaleDataDto pmoSaleDataDto);

	/**
	 * 根据新项目名修改项目下所有房间别名
	 * @return
	 */
	int updateCombinedNameByProjectId(String oldName, String newName, Long projectId);
}
